package edu.wpi.first.wpilibj.templates;

/**
 * The RobotMap is a mapping from the ports sensors and actuators are wired into
 * to a variable name. This provides flexibility changing wiring, makes checking
 * the wiring easier and significantly reduces the number of magic numbers
 * floating around.
 */
public class RobotMap {
    // For example to map the left and right motors, you could define the
    // following variables to use with your drivetrain subsystem.

    // Left Drive Motor CAN IDs
    public static final int kLeftForeDriveMotor = 2;         // CAN ID
    public static final int kLeftMidDriveMotor = 3;          // CAN ID
    public static final int kLeftRearDriveMotor = 4;         // CAN ID
    
    // Right Drive Motor CAN IDs
    public static final int kRightForeDriveMotor = 6;        // CAN ID
    public static final int kRightMidDriveMotor = 7;         // CAN ID
    public static final int kRightRearDriveMotor = 8;        // CAN ID

    // Swerve Drive CAN ID
    public static final int kSwerveDriveMotor = 10;          // CAN ID
    
    // Arm Drive CAN ID
    public static final int kArmShoulderDriveMotor = 11;     // CAN ID
    
    // Shooter Drive CAN ID
    public static final int kShooterDriveMotor = 12;         // CAN ID
    
    // Shooter Loader 
    public static final int kShooterLoader = 5;              // PWM 5
    
    // Swerve Solenoids
    public static final int kSolenoidRetract = 1;            // Solenoid 1
    public static final int kSolenoidDeploy = 2;             // Solenoid 1
    
    // Compressor Info
    public static final int kPressureSwitchGPIOChannel = 9;  // GPIO 9
    public static final int kCompressorRelayChannel = 1;     // Relay 1
    
    
    // Inertial Reference Connections
    public static final int kAccelerometerDigitalPort = 1;   // I2C 1
    public static final int kYawGyroPort = 1;                // Analog 1
    public static final int kPitchGyroPort = 2;              // Analog 2
    
    // Lifter Ports
    public static final int kLeftForeLifterPort = 10;        // PWM 10
    public static final int kLeftRearLifterPort = 9;         // PWM 9
    public static final int kRightForeLifterPort = 8;        // PWM 8
    public static final int kRightRearLifterPort = 7;        // PWM 7
    
  // Lifter Pot Ports         Note: system battery check uses   Analog 8
    public static final int kLeftForePot = 7;                // Analog 7
    public static final int kLeftRearPot = 6;                // Analog 6
    public static final int kRightForePot = 5;               // Analog 5
    public static final int kRightRearPot = 4;               // Analog 4
    
    // Robot ID (Kitty or Rook)
    public static final int kRobotIDPort = 14;               // DIO 14
    
    // If you are using multiple modules, make sure to define both the port
    // number and the module. For example you with a rangefinder:
    // public static final int rangefinderPort = 1;
    // public static final int rangefinderModule = 1;    
    
    
    // Axis Camera Info
    public static final String ip = "10.39.58.12";
    public static final int kBrightness = 50;
    public static final int kFramesPerSecond = 30;
}
